package org.hd.lineloss.fill.service;


import org.apache.ibatis.annotations.Param;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.hd.entities.LineLossFill;

import java.io.IOException;
import java.util.List;
import java.util.Map;

/***
 * 模板处理接口
 */
public interface LineLossFillService {


    /**
     * 插入新数据
     * @param insertDate
     * @param username
     * @param luckySheetConfigStr
     * @return
     */
    boolean fillReport(
            String insertDate,
            String username,
            String luckySheetConfigStr,
            String insertTime
    );

    /**
     * 获取填报模板。如果有当月填报的数据，就返回，如果没有的话就返回模板
     * @param date
     * @param username
     * @return
     */
    Map<String,String> getFillReport(
            String date,
            String username
    ) throws IOException;

    /**
     * 获取提交的时间,通过月份和用户名
     * @return
     */
    String getFillDate(
             String username,
             String month
    );

    /***
     * 检查谁没有填报
     * @param month
     * @return
     */
    List<String> checkUnFill(String month);

    /***
     * 导出excel
     * @param option 字符串的配置
     * @return
     */
    XSSFWorkbook exportExcel(String option);

}
